package a.f.l.a;

import a.c.d;
import a.c.e;
import a.c.j;
import a.c.k;
import a.c.v;
import a.c.y;
import a.c.z;
import a.f.ad;
import a.f.ed;
import a.f.tb;
import a.f.wc;
import a.i.db;
import a.i.p;

import java.util.*;

class ic
  extends sb
{
  private static final double f = 1.0E-006D;
  private static final double g = 1.0D;
  private static final double h = 5.0D;
  private final List i = new z();
  private final Set j = new HashSet();
  private final HashMap k = new HashMap();
  private final HashMap l = new HashMap();
  private final HashMap m = new HashMap();
  private j n;
  private j o;
  private j p;
  private a.c.n q;
  private Object r;
  private Object s;
  private boolean t;
  private k u;
  private k v;
  private k w;
  private k x;
  private k y;
  private k z;
  private k A;
  
  protected void a(qb paramqb)
  {
    boolean bool = sb.e;
    super.a(paramqb);
    a.f.o localo = paramqb.a();
    this.t = ((bool) || ((localo.c(ed.c) != null) || (localo.c(ed.d) != null)));
    if ((bool) || (this.t)) {
      d();
    }
  }
  
  protected void c()
  {
    if (!sb.e) {
      if (this.t)
      {
        e();
        f();
        this.s = null;
        this.r = null;
        this.k.clear();
      }
    }
    super.c();
  }
  
  private void d()
  {
    boolean bool = sb.e;
    int i1 = sb.d;
    a.f.o localo = a().a();
    k localk1 = localo.c(ed.c);
    k localk2 = localo.c(ed.d);
    a.c.n localn = db.b();
    localo.a(a.m, localn);
    this.q = db.b();
    Object localObject1 = localo.w();
    Object localObject2;
    Object localObject3;
    label149:
    label233:
    do
    {
      if (!((a.c.m)localObject1).e()) {
        break;
      }
      localObject2 = ((a.c.m)localObject1).a();
      if (i1 != 0) {
        break label408;
      }
      if (localk1 != null)
      {
        if (bool) {
          break label149;
        }
        if (localk1.get(localObject2) != null)
        {
          localObject3 = localk1.get(localObject2);
          localn.a(localObject2, new c_(((d)localObject2).e(), localObject3));
          if (bool) {
            continue;
          }
          if (i1 == 0) {
            break label233;
          }
        }
      }
      if (((bool) || (localk2 != null)) && ((bool) || (localk2.get(localObject2) != null)))
      {
        localObject3 = localk2.get(localObject2);
        localn.a(localObject2, new c_(((d)localObject2).f(), localObject3));
        localo.e((d)localObject2);
        wc.a(localo.e(localObject2));
        this.q.a(localObject2, true);
      }
      ((a.c.m)localObject1).f();
    } while (i1 == 0);
    this.w = localo.c(ed.a);
    this.x = localo.c(ed.b);
    this.y = localo.c(ad.q);
    this.z = localo.c(ad.r);
    this.u = localk1;
    this.v = localk2;
    localo.a(ed.a, new p()
    {
      public Object get(Object paramAnonymousObject)
      {
        boolean bool = sb.e;
        if (!bool) {
          if (ic.this.q.getBool(paramAnonymousObject))
          {
            if (!bool) {}
            return ic.this.x != null ? ic.this.x.get(paramAnonymousObject) : null;
          }
        }
        if (!bool) {}
        return ic.this.w != null ? ic.this.w.get(paramAnonymousObject) : null;
      }
    });
    localo.a(ed.b, new p()
    {
      public Object get(Object paramAnonymousObject)
      {
        boolean bool = sb.e;
        if (!bool) {
          if (ic.this.q.getBool(paramAnonymousObject))
          {
            if (!bool) {}
            return ic.this.w != null ? ic.this.w.get(paramAnonymousObject) : null;
          }
        }
        if (!bool) {}
        return ic.this.x != null ? ic.this.x.get(paramAnonymousObject) : null;
      }
    });
    localo.a(ad.q, new p()
    {
      public Object get(Object paramAnonymousObject)
      {
        boolean bool = sb.e;
        if (!bool) {
          if (ic.this.q.getBool(paramAnonymousObject))
          {
            if (!bool) {}
            return ic.this.z != null ? ic.this.z.get(paramAnonymousObject) : null;
          }
        }
        if (!bool) {}
        return ic.this.y != null ? ic.this.y.get(paramAnonymousObject) : null;
      }
    });
    localo.a(ad.r, new p()
    {
      public Object get(Object paramAnonymousObject)
      {
        boolean bool = sb.e;
        if (!bool) {
          if (ic.this.q.getBool(paramAnonymousObject))
          {
            if (!bool) {}
            return ic.this.y != null ? ic.this.y.get(paramAnonymousObject) : null;
          }
        }
        if (!bool) {}
        return ic.this.z != null ? ic.this.z.get(paramAnonymousObject) : null;
      }
    });
    localo.a(ed.c, new p()
    {
      public Object get(Object paramAnonymousObject)
      {
        boolean bool = sb.e;
        if (!bool) {
          if (ic.this.q.getBool(paramAnonymousObject))
          {
            if (!bool) {}
            return ic.this.v != null ? ic.this.v.get(paramAnonymousObject) : null;
          }
        }
        if (!bool) {}
        return ic.this.u != null ? ic.this.u.get(paramAnonymousObject) : null;
      }
    });
    localo.a(ed.d, new p()
    {
      public Object get(Object paramAnonymousObject)
      {
        boolean bool = sb.e;
        if (!bool) {
          if (ic.this.q.getBool(paramAnonymousObject))
          {
            if (!bool) {}
            return ic.this.u != null ? ic.this.u.get(paramAnonymousObject) : null;
          }
        }
        if (!bool) {}
        return ic.this.v != null ? ic.this.v.get(paramAnonymousObject) : null;
      }
    });
    this.A = localo.c("y.layout.router.polyline.EdgeRouter.EDGE_LAYOUT_DESCRIPTOR_DPKEY");
    if (!bool)
    {
      if (this.A != null)
      {
        label408:
        localObject1 = db.b();
        localObject2 = localo.w();
        label530:
        do
        {
          if (!((a.c.m)localObject2).e()) {
            break;
          }
          localObject3 = ((a.c.m)localObject2).a();
          o localo1 = a().c().a((d)localObject3);
          if (i1 != 0) {
            return;
          }
          if (!bool) {
            if (localn.get(localObject3) != null)
            {
              ((a.c.n)localObject1).a(localObject3, new j_(localo1, (d)localObject3, this.q.getBool(localObject3)));
              if (bool) {
                continue;
              }
              if (i1 == 0) {
                break label530;
              }
            }
          }
          ((a.c.n)localObject1).a(localObject3, localo1);
          ((a.c.m)localObject2).f();
        } while (i1 == 0);
        if (!bool) {
          localo.a("y.layout.router.polyline.EdgeRouter.EDGE_LAYOUT_DESCRIPTOR_DPKEY", (k)localObject1);
        }
      }
      else
      {
        this.o = db.c();
        this.n = db.c();
      }
    }
    else {
      this.p = db.c();
    }
  }
  
  private void e()
  {
    boolean bool = sb.e;
    int i1 = sb.d;
    a.f.o localo = a().a();
    if (!bool)
    {
      if (this.w != null) {
        localo.a(ed.a, this.w);
      }
    }
    else
    {
      if (bool) {
        break label64;
      }
      this.w = null;
      if (i1 == 0) {
        break label63;
      }
    }
    localo.j(ed.a);
    label63:
    label64:
    if (!bool)
    {
      if (this.x != null) {
        localo.a(ed.b, this.x);
      }
    }
    else
    {
      if (bool) {
        break label109;
      }
      this.x = null;
      if (i1 == 0) {
        break label108;
      }
    }
    localo.j(ed.b);
    label108:
    label109:
    if (!bool)
    {
      if (this.y != null) {
        localo.a(ad.q, this.y);
      }
    }
    else
    {
      if (bool) {
        break label154;
      }
      this.y = null;
      if (i1 == 0) {
        break label153;
      }
    }
    localo.j(ad.q);
    label153:
    label154:
    if (!bool)
    {
      if (this.z != null) {
        localo.a(ad.r, this.z);
      }
    }
    else
    {
      if (bool) {
        break label199;
      }
      this.z = null;
      if (i1 == 0) {
        break label198;
      }
    }
    localo.j(ad.r);
    label198:
    label199:
    if (!bool)
    {
      if (this.u != null) {
        localo.a(ed.c, this.u);
      }
    }
    else
    {
      if (bool) {
        break label244;
      }
      this.u = null;
      if (i1 == 0) {
        break label243;
      }
    }
    localo.j(ed.c);
    label243:
    label244:
    if (!bool)
    {
      if (this.v != null) {
        localo.a(ed.d, this.v);
      }
    }
    else
    {
      if (bool) {
        break label289;
      }
      this.v = null;
      if (i1 == 0) {
        break label288;
      }
    }
    localo.j(ed.d);
    label288:
    label289:
    if (!bool)
    {
      if (this.A != null)
      {
        if (bool) {
          break label332;
        }
        localo.a("y.layout.router.polyline.EdgeRouter.EDGE_LAYOUT_DESCRIPTOR_DPKEY", this.A);
      }
    }
    else
    {
      this.A = null;
      if (i1 == 0) {
        break label331;
      }
    }
    localo.j("y.layout.router.polyline.EdgeRouter.EDGE_LAYOUT_DESCRIPTOR_DPKEY");
    label331:
    label332:
    a.c.m localm = localo.w();
    do
    {
      if (!localm.e()) {
        break;
      }
      d locald = localm.a();
      if (bool) {
        return;
      }
      if (i1 != 0) {
        break label432;
      }
      if (!bool)
      {
        if (this.q.getBool(locald))
        {
          localo.e(locald);
          wc.a(localo.e(locald));
        }
        localm.f();
      }
    } while (i1 == 0);
    localo.j(a.m);
    this.o = null;
    this.n = null;
    this.p = null;
    if (!bool) {
      label432:
      this.q = null;
    }
  }
  
  protected void a(rb paramrb)
  {
    boolean bool2 = sb.e;
    int i1 = sb.d;
    super.a(paramrb);
    if (!bool2)
    {
      if (!this.t) {
        return;
      }
      this.k.clear();
    }
    k localk = a().a().c(a.m);
    if ((bool2) || ((this.A != null) && (localk != null)))
    {
      o localo1 = a().c().c();
      a.c.m localm = paramrb.c();
      label245:
      do
      {
        if (!localm.e()) {
          break;
        }
        d locald = localm.a();
        boolean bool1 = this.q.getBool(locald);
        Object localObject = localk.get(locald);
        if (!bool2)
        {
          if (localObject != null)
          {
            o localo2 = (o)this.A.get(locald);
            if ((bool2) || (localo2 == null)) {
              localo2 = localo1;
            }
            double d = bool1 ? localo2.b() : localo2.a();
            if (!bool2) {
              if (this.k.containsKey(localObject))
              {
                if (bool2) {
                  continue;
                }
                if (((Double)this.k.get(localObject)).doubleValue() >= d) {
                  break label245;
                }
              }
            }
            this.k.put(localObject, new Double(d));
          }
          localm.f();
        }
      } while (i1 == 0);
    }
  }
  
  protected void b(rb paramrb)
  {
    boolean bool = sb.e;
    super.b(paramrb);
    if (!bool) {
      if (!this.t) {
        return;
      }
    }
    a.f.o localo = a().a();
    d locald = paramrb.d();
    k localk = localo.c(a.m);
    this.r = localk.get(locald);
    Object localObject = (List)this.n.get(this.r);
    if (!bool) {
      if (this.r != null)
      {
        if (bool) {
          break label119;
        }
        if (this.s != null)
        {
          if (bool) {
            break label172;
          }
          if (this.s.equals(this.r)) {
            break label156;
          }
        }
      }
    }
    label119:
    f();
    if (!bool)
    {
      if (localObject == null)
      {
        localObject = new z();
        this.n.a(this.r, localObject);
      }
      label156:
      this.s = this.r;
    }
    label172:
    ((List)localObject).add(locald);
  }
  
  protected void c(rb paramrb)
  {
    boolean bool = sb.e;
    int i3 = sb.d;
    super.c(paramrb);
    if (!bool) {
      if (!this.t) {
        return;
      }
    }
    List localList1 = (List)this.n.get(this.r);
    if ((bool) || (localList1 != null)) {
      localList1.remove(b().d());
    }
    ob localob = paramrb.a().a(b().d());
    if (localob != null)
    {
      int i1 = 0;
      int i2 = localob.e();
      do
      {
        if (i1 >= i2) {
          break;
        }
        h localh = localob.a(i1);
        List localList2 = (List)this.o.get(localh);
        if (!bool)
        {
          if (localList2 != null) {
            localList2.remove(localob);
          }
          i1++;
        }
      } while (i3 == 0);
    }
  }
  
  private void f()
  {
    this.j.clear();
    this.i.clear();
    this.l.clear();
    this.m.clear();
  }
  
  protected void d(rb paramrb)
  {
    if (!sb.e)
    {
      if (!this.t) {
        return;
      }
      g(paramrb);
    }
    this.p.a(this.r, this.i);
  }
  
  protected void e(rb paramrb)
  {
    if (!sb.e) {
      if (!this.t) {
        return;
      }
    }
    List localList = f(paramrb);
    c(localList);
    d(localList);
    a(paramrb, localList);
  }
  
  private List f(rb paramrb)
  {
    boolean bool = sb.e;
    int i1 = sb.d;
    HashSet localHashSet = new HashSet();
    z localz = new z();
    k localk = a().a().c(a.m);
    a.c.m localm = paramrb.c();
    do
    {
      if (!localm.e()) {
        break;
      }
      d locald = localm.a();
      if (!bool)
      {
        if ((localk != null) && (localk.get(locald) != null))
        {
          if (bool) {
            continue;
          }
          if (localHashSet.add(localk.get(locald))) {
            localz.add(localk.get(locald));
          }
        }
        localm.f();
      }
    } while (i1 == 0);
    return localz;
  }
  
  private void c(List paramList)
  {
    boolean bool = sb.e;
    int i2 = sb.d;
    label23:
    label53:
    do
    {
      Iterator localIterator1 = paramList.iterator();
      break label53;
      break label53;
      break label53;
      if (!localIterator1.hasNext()) {
        break;
      }
      List localList = (List)this.n.get(localIterator1.next());
      Iterator localIterator2 = localList.iterator();
      do
      {
        ob localob;
        do
        {
          if (!localIterator2.hasNext()) {
            break;
          }
          d locald = (d)localIterator2.next();
          localob = b().a().a(locald);
        } while (bool);
        if (!this.m.containsKey(localob)) {
          break;
        }
        h localh1 = (h)this.m.get(localob);
        h localh2 = (h)this.l.get(localh1);
        int i1 = localob.a(localh1);
        localob.a(i1, localh2);
        if ((bool) || (i2 != 0)) {
          break label23;
        }
        if (localob.e() <= i1 + 1) {
          break;
        }
        h localh3 = localob.a(i1 + 1);
        localh3.a(localh2);
      } while (bool);
    } while (i2 == 0);
  }
  
  private void d(List paramList)
  {
    boolean bool = sb.e;
    int i1 = sb.d;
    label17:
    label23:
    label71:
    do
    {
      Iterator localIterator1 = paramList.iterator();
      break label71;
      break label71;
      List localList;
      do
      {
        if (!localIterator1.hasNext()) {
          break;
        }
        localList = (List)this.p.get(localIterator1.next());
      } while ((localList == null) || ((!bool) && (localList.isEmpty())));
      Iterator localIterator2 = localList.iterator();
      do
      {
        if (!localIterator2.hasNext()) {
          break label17;
        }
        h localh1 = (h)localIterator2.next();
        if (!this.l.containsKey(localh1)) {
          break;
        }
        h localh2 = (h)this.l.get(localh1);
        localh2.a(localh1.c());
        if (bool) {
          break label23;
        }
        if ((!bool) && (i1 != 0)) {
          return;
        }
      } while (bool);
    } while (i1 == 0);
  }
  
  private void a(rb paramrb, List paramList)
  {
    boolean bool = sb.e;
    int i1 = sb.d;
    label135:
    label140:
    label316:
    label321:
    label462:
    label463:
    label465:
    do
    {
      z localz;
      Object localObject3;
      do
      {
        Iterator localIterator = paramList.iterator();
        break label135;
        Object localObject1;
        Object localObject2;
        do
        {
          if (!localIterator.hasNext()) {
            break;
          }
          List localList = (List)this.n.get(localIterator.next());
          localz = new z();
          do
          {
            localObject1 = localList.iterator();
            do
            {
              do
              {
                if (!((Iterator)localObject1).hasNext()) {
                  break;
                }
                localObject2 = (d)((Iterator)localObject1).next();
                localObject3 = paramrb.a().a((d)localObject2);
              } while (localObject3 == null);
              localz.add(localObject3);
              if (bool) {
                break label140;
              }
              if ((!bool) && (i1 != 0)) {
                break;
              }
            } while ((!bool) && (i1 == 0));
            if (localz.isEmpty()) {
              break;
            }
            localObject1 = null;
            localObject2 = new z();
            localObject3 = new z();
          } while (bool);
        } while (i1 != 0);
        Object localObject4 = localz.iterator();
        Object localObject5;
        Object localObject6;
        do
        {
          do
          {
            do
            {
              if (!((Iterator)localObject4).hasNext()) {
                break label316;
              }
              localObject5 = (ob)((Iterator)localObject4).next();
              localObject6 = ((ob)localObject5).a(0);
              if (bool) {
                break label260;
              }
              if (localObject1 != null) {
                break;
              }
              localObject1 = localObject6;
              ((z)localObject3).add(localObject5);
              ((z)localObject2).add(paramrb.k().a((ob)localObject5));
            } while ((!bool) && (i1 == 0));
          } while (!localObject1.equals(localObject6));
          ((z)localObject2).add(paramrb.k().a((ob)localObject5));
          ((z)localObject3).add(localObject5);
          if (bool) {
            break label321;
          }
          if (bool) {
            break label427;
          }
          if (i1 != 0) {
            break label422;
          }
        } while ((!bool) && (i1 == 0));
        if (!bool)
        {
          if (((z)localObject2).size() > 1)
          {
            localObject4 = new z();
            ((z)localObject4).add(new b_((List)localObject2, 0));
            do
            {
              do
              {
                if (((z)localObject4).isEmpty()) {
                  break;
                }
                localObject5 = (b_)((z)localObject4).remove(0);
                localObject6 = ((b_)localObject5).a();
              } while (((z)localObject6).size() <= 0);
              ((z)localObject4).a((z)localObject6);
              if (bool) {
                break label427;
              }
              if (bool) {
                break label465;
              }
              if (i1 != 0) {
                break label463;
              }
            } while ((!bool) && (i1 == 0));
          }
          if (bool) {
            break label462;
          }
        }
        if (localz.size() != ((z)localObject3).size()) {
          break;
        }
        localz.clear();
      } while ((!bool) && (i1 == 0));
      localz.removeAll((Collection)localObject3);
    } while (i1 == 0);
    label260:
    label422:
    label427:
    return;
  }
  
  protected double a(h paramh)
  {
    boolean bool = sb.e;
    if (((bool) || (!this.j.isEmpty())) && ((bool) || (!this.j.contains(paramh)))) {
      return b().e().f().p();
    }
    return 0.0D;
  }
  
  protected void a(List paramList)
  {
    if ((sb.e) || (this.t)) {
      paramList.addAll(this.i);
    }
  }
  
  private void g(rb paramrb)
  {
    boolean bool = sb.e;
    int i1 = sb.d;
    ob localob1 = paramrb.a().a(paramrb.d());
    if (localob1 == null) {
      return;
    }
    z localz1 = new z();
    HashMap localHashMap = new HashMap();
    a(paramrb, localz1, localHashMap);
    this.i.clear();
    this.j.clear();
    Iterator localIterator1 = localz1.iterator();
    label337:
    label342:
    do
    {
      do
      {
        h localh3;
        z localz2;
        do
        {
          h localh1;
          h localh2;
          jb localjb1;
          do
          {
            do
            {
              if (!localIterator1.hasNext()) {
                return;
              }
              localh1 = (h)localIterator1.next();
              localh2 = (h)localHashMap.get(localh1);
              m localm1 = a(localob1, localh1);
              localjb1 = localm1.m();
              if (!bool)
              {
                if (!localjb1.g(localh2.c())) {
                  break;
                }
                this.j.add(localh2);
                this.i.add(localh2);
              }
            } while (bool);
          } while (i1 == 0);
          localh3 = new h(localh1);
          localh3.a(localjb1);
          this.l.put(localh3, localh1);
          localz2 = new z();
          List localList = (List)this.o.get(localh2);
          Iterator localIterator2 = localList.iterator();
          do
          {
            do
            {
              ob localob2;
              jb localjb2;
              do
              {
                if (!localIterator2.hasNext()) {
                  break;
                }
                localob2 = (ob)localIterator2.next();
                m localm2 = a(localob2, localh1);
                localjb2 = localm2.m();
              } while (!localjb1.f(localjb2));
              localz2.add(localob2);
              if ((bool) || (bool)) {
                break label342;
              }
              if (i1 != 0) {
                break label337;
              }
            } while (bool);
          } while (i1 == 0);
          this.o.a(localh3, localz2);
        } while (localz2.size() <= 0);
        this.j.add(localh3);
        this.i.add(localh3);
      } while (bool);
    } while (i1 == 0);
  }
  
  private m a(ob paramob, h paramh)
  {
    n localn = b().k().a(paramob);
    m localm = localn.a(paramh);
    if (!sb.e) {
      if (localm != null) {
        return localm;
      }
    }
    h localh = (h)this.m.get(paramob);
    return localn.a(localh);
  }
  
  private void a(rb paramrb, z paramz, HashMap paramHashMap)
  {
    boolean bool = sb.e;
    int i3 = sb.d;
    ob localob = paramrb.a().a(paramrb.d());
    if (localob == null) {
      return;
    }
    int i1 = 0;
    int i2 = localob.e();
    label202:
    do
    {
      if (i1 >= i2) {
        break;
      }
      h localh1 = localob.a(i1);
      mb localmb = localh1.a();
      if (!bool) {
        if (this.i.size() != 0)
        {
          if (bool) {
            continue;
          }
          if (!this.j.contains(localh1)) {
            break label202;
          }
        }
      }
      if (!bool)
      {
        if (!paramrb.b(localmb))
        {
          if (bool) {
            continue;
          }
          if (!paramrb.d(localmb))
          {
            h localh2 = (bool) || (this.l.containsKey(localh1)) ? (h)this.l.get(localh1) : localh1;
            if (!bool) {
              if (localh1 != localh2) {
                this.m.put(localob, localh1);
              }
            }
            paramHashMap.put(localh2, localh1);
            paramz.add(localh2);
          }
        }
        i1++;
      }
    } while (i3 == 0);
  }
  
  protected void a(ob paramob)
  {
    boolean bool = sb.e;
    int i3 = sb.d;
    if ((bool) || (this.t))
    {
      int i1 = 0;
      int i2 = paramob.e();
      do
      {
        if (i1 >= i2) {
          break;
        }
        h localh = paramob.a(i1);
        Object localObject = (List)this.o.get(localh);
        if (!bool) {
          if (localObject == null)
          {
            localObject = new z();
            this.o.a(localh, localObject);
          }
        }
        ((List)localObject).add(paramob);
        i1++;
      } while (i3 == 0);
    }
  }
  
  private class j_
    extends o
  {
    private final o p;
    private final boolean q;
    private final Object r;
    
    j_(o paramo, d paramd, boolean paramBoolean)
    {
      this.p = paramo;
      this.q = paramBoolean;
      k localk = ic.this.a().a().c(a.m);
      this.r = localk.get(paramd);
    }
    
    public double a()
    {
      Double localDouble = (Double)ic.this.k.get(this.r);
      return localDouble.doubleValue();
    }
    
    public double b()
    {
      if (!sb.e) {
        if (this.q) {
          return this.p.a();
        }
      }
      return this.p.b();
    }
    
    public double c()
    {
      return this.p.c();
    }
    
    public double d()
    {
      return this.p.d();
    }
    
    public byte e()
    {
      return this.p.e();
    }
    
    public mc f()
    {
      return this.p.f();
    }
    
    public void c(double paramDouble)
    {
      this.p.c(paramDouble);
    }
    
    public void d(double paramDouble)
    {
      this.p.d(paramDouble);
    }
    
    public void a(byte paramByte)
    {
      this.p.a(paramByte);
    }
    
    public void a(mc parammc)
    {
      this.p.a(parammc);
    }
  }
  
  static final class c_
  {
    private final e a;
    private final Object b;
    
    c_(e parame, Object paramObject)
    {
      this.a = parame;
      this.b = paramObject;
    }
    
    public boolean equals(Object paramObject)
    {
      boolean bool = sb.e;
      if (!bool) {
        if (this == paramObject) {
          return true;
        }
      }
      if (!bool) {
        if (!(paramObject instanceof c_)) {
          return false;
        }
      }
      c_ localc_ = (c_)paramObject;
      if (!bool) {
        if (this.a != localc_.a) {
          return false;
        }
      }
      if ((bool) || ((this.b == null) || (!bool))) {
        if ((!this.b.equals(localc_.b)) && ((goto 89) || (localc_.b != null))) {
          return false;
        }
      }
      return true;
    }
    
    public int hashCode()
    {
      boolean bool = sb.e;
      int i = (bool) || (this.a != null) ? this.a.hashCode() : 0;
      i = 31 * i + ((bool) || (this.b != null) ? this.b.hashCode() : 0);
      return i;
    }
  }
  
  class b_
  {
    final List a;
    final int b;
    final HashSet c = new HashSet();
    final boolean e;
    
    b_(List paramList, int paramInt)
    {
      this.a = paramList;
      this.b = paramInt;
      this.e = ((n)paramList.get(0)).a(paramInt).g();
    }
    
    z a()
    {
      boolean bool = sb.e;
      int i = sb.d;
      z localz1 = new z();
      z localz2 = b();
      HashMap localHashMap = new HashMap();
      v localv = localz2.f();
      if (localv != null) {}
      label193:
      label219:
      label220:
      do
      {
        Object localObject1;
        do
        {
          while (bool)
          {
            locala_ = (a_)localv.c();
            locala_.c();
            if (bool) {
              break label220;
            }
            if (i != 0) {
              break label219;
            }
            localObject1 = locala_.a.iterator();
            do
            {
              do
              {
                if (!((Iterator)localObject1).hasNext()) {
                  break;
                }
                n localn = (n)((Iterator)localObject1).next();
                if (i != 0) {
                  break label193;
                }
                Object localObject2;
                if (localHashMap.containsKey(localn))
                {
                  localObject2 = (List)localHashMap.get(localn);
                  if (bool) {
                    continue;
                  }
                  if (i == 0) {}
                }
                else
                {
                  localObject2 = new z();
                  localHashMap.put(localn, localObject2);
                }
                ((List)localObject2).add(localv);
              } while (i == 0);
              localv = localv.a();
            } while (bool);
            if (i == 0) {
              break;
            }
          }
          if (localz2.size() <= 0) {
            return localz1;
          }
          localv = b(localz2);
          a_ locala_ = (a_)localv.c();
          localz2.h(localv);
          localObject1 = a(locala_, localz2, localHashMap);
        } while (localObject1 == null);
        if ((bool) || (i != 0)) {
          break label258;
        }
        localz1.add(localObject1);
      } while (i == 0);
      label258:
      return localz1;
    }
    
    private b_ a(a_ parama_, z paramz, HashMap paramHashMap)
    {
      boolean bool = sb.e;
      int i = sb.d;
      HashSet localHashSet = new HashSet();
      z localz1 = new z();
      z localz2 = new z();
      z localz3 = new z();
      pc localpc = new pc(parama_.d, localz3);
      Iterator localIterator = parama_.a.iterator();
      Object localObject1;
      Object localObject2;
      label264:
      label265:
      label296:
      do
      {
        v localv;
        do
        {
          break label296;
          do
          {
            Object localObject4;
            do
            {
              if (!localIterator.hasNext()) {
                break;
              }
              localObject1 = (n)localIterator.next();
              localObject2 = ((n)localObject1).a(this.b);
              if (!bool) {
                if (parama_.a.size() > 1)
                {
                  localz3.add(localObject2);
                  ((f)localObject2).a(localpc);
                  localObject3 = ((n)localObject1).d().iterator();
                  do
                  {
                    do
                    {
                      do
                      {
                        if (!((Iterator)localObject3).hasNext()) {
                          break;
                        }
                        localObject4 = (m)((Iterator)localObject3).next();
                        if (!bool) {
                          if (((m)localObject4).m() != null)
                          {
                            if (bool) {
                              continue;
                            }
                            if (((m)localObject4).f() == this.b) {
                              ((m)localObject4).a(localpc);
                            }
                          }
                        }
                      } while (((m)localObject4).n() == null);
                      if (bool) {
                        break label264;
                      }
                      if (i != 0) {
                        break label265;
                      }
                    } while (((m)localObject4).g() != this.b);
                    ((m)localObject4).b(localpc);
                  } while ((!bool) && (i == 0));
                  if (((n)localObject1).e() > this.b + 1) {
                    localz2.add(localObject1);
                  }
                }
              }
              Object localObject3 = (List)paramHashMap.get(localObject1);
              localObject4 = ((List)localObject3).iterator();
            } while (!((Iterator)localObject4).hasNext());
            localv = (v)((Iterator)localObject4).next();
            if (bool) {
              break label434;
            }
            if ((bool) || (i != 0)) {
              break label431;
            }
            if (localv.c() == parama_) {
              break;
            }
            if (bool) {
              break label496;
            }
          } while (i != 0);
        } while (!localHashSet.add(localv));
        localz1.add(localv);
      } while ((!bool) && (i == 0));
      if ((bool) || (localpc.b().size() > 0)) {
        localpc.d();
      }
      localIterator = localz1.iterator();
      label431:
      label434:
      do
      {
        do
        {
          if (!localIterator.hasNext()) {
            break;
          }
          localObject1 = (v)localIterator.next();
          localObject2 = (a_)((v)localObject1).c();
        } while (!((a_)localObject2).c(parama_.a));
        paramz.h((v)localObject1);
        if (bool) {
          break label495;
        }
        if ((!bool) && (i != 0)) {
          break label521;
        }
      } while ((!bool) && (i == 0));
      label495:
      label496:
      return localz2.size() > 1 ? new b_(ic.this, localz2, this.b + 1) : null;
    }
    
    private z b()
    {
      boolean bool = sb.e;
      int i = sb.d;
      Object localObject1 = null;
      z localz1 = new z();
      z localz2 = new z();
      Object localObject2 = this.a.iterator();
      if (((Iterator)localObject2).hasNext()) {}
      label123:
      while (bool)
      {
        localObject3 = (n)((Iterator)localObject2).next();
        localObject4 = ((n)localObject3).a(this.b);
        tb localtb = ((f)localObject4).h();
        if (!bool) {
          if (localObject1 == null) {
            localObject1 = localtb;
          }
        }
        if (localObject1 == localtb)
        {
          localz1.add(localObject3);
          if (bool) {
            break label123;
          }
          if (i == 0) {
            break;
          }
        }
        localz2.add(localObject3);
        if (i == 0) {
          break;
        }
      }
      localObject2 = new ic.0(this);
      localz1.a((Comparator)localObject2);
      localz2.a((Comparator)localObject2);
      Object localObject3 = a(localz1);
      Object localObject4 = a(localz2);
      return a((z)localObject3, (z)localObject4);
    }
    
    private z a(z paramz)
    {
      boolean bool = sb.e;
      int i = sb.d;
      z localz = new z();
      y localy = paramz.h();
      label97:
      do
      {
        a_ locala_1;
        do
        {
          if (!localy.e()) {
            break;
          }
          break label97;
          n localn1 = (n)localy.j();
          f localf = localn1.a(this.b);
          eb localeb = localf.c();
          locala_1 = new a_(localn1);
          if (i != 0) {
            break label253;
          }
          v localv = localz.f();
          do
          {
            do
            {
              if (localv == null) {
                break label224;
              }
              a_ locala_2 = (a_)localv.c();
              if (i != 0) {
                break;
              }
              if (locala_2.d.f(localeb))
              {
                locala_1 = null;
                locala_2.a(localn1);
              }
              else if ((localeb.c(locala_2.d)) && ((bool) || (locala_1 != null)))
              {
                Iterator localIterator = locala_2.a.iterator();
                do
                {
                  if (!localIterator.hasNext()) {
                    break;
                  }
                  n localn2 = (n)localIterator.next();
                  locala_1.a(localn2);
                  if (bool) {
                    break label221;
                  }
                  if (i != 0) {
                    break label219;
                  }
                } while (i == 0);
              }
            } while (bool);
            localv = localv.a();
          } while (i == 0);
        } while (bool);
        if (locala_1 != null) {
          localz.b(locala_1);
        }
        localy.f();
      } while (i == 0);
      label219:
      label221:
      label224:
      label253:
      return localz;
    }
    
    private z a(z paramz1, z paramz2)
    {
      boolean bool = sb.e;
      int i = sb.d;
      z localz = new z();
      v localv1 = paramz2.g();
      if (localv1 != null) {}
      label301:
      label303:
      while (bool)
      {
        a_ locala_1 = (a_)localv1.c();
        eb localeb1 = locala_1.d;
        if (i != 0) {
          break label317;
        }
        v localv2 = paramz1.g();
        do
        {
          do
          {
            if (localv2 == null) {
              break;
            }
            a_ locala_2 = (a_)localv2.c();
            eb localeb2 = locala_2.d;
            if (!bool) {
              if (localeb2.f(localeb1))
              {
                locala_2.a(locala_1);
                if ((!bool) && (i == 0)) {
                  break;
                }
              }
            }
            if (!bool) {
              if (localeb1.c(localeb2))
              {
                locala_1.a(locala_2.a);
                localz.add(locala_1);
                if ((!bool) && (i == 0)) {
                  break;
                }
              }
            }
            if (!bool) {
              if (localeb2.c(localeb1))
              {
                locala_2.a(locala_1.a);
                if (bool) {
                  continue;
                }
              }
            }
            if ((i != 0) && ((bool) || (localeb2.a(localeb1, 1.0E-006D))))
            {
              eb localeb3 = eb.a(localeb2, localeb1);
              if (bool) {
                continue;
              }
              if (!this.c.contains(localeb3))
              {
                a_ locala_3 = new a_(locala_2, locala_1, localeb3);
                localz.add(locala_3);
              }
            }
            localv2 = localv2.b();
          } while (localv2 != null);
          localz.add(locala_1);
          if ((bool) || (bool)) {
            break label303;
          }
          if (i != 0) {
            break label301;
          }
        } while (i == 0);
        localv1 = localv1.b();
        if (i == 0) {
          break;
        }
      }
      localz.a(paramz1);
      label317:
      return localz;
    }
    
    private v b(z paramz)
    {
      boolean bool = sb.e;
      int i = sb.d;
      double d1 = 1.7976931348623157E+308D;
      Object localObject = null;
      v localv = paramz.f();
      do
      {
        if (localv == null) {
          break;
        }
        if ((!bool) && (i != 0)) {
          break label88;
        }
        a_ locala_ = (a_)localv.c();
        double d2 = locala_.a();
        if (!bool)
        {
          if (d2 < d1)
          {
            d1 = d2;
            localObject = localv;
          }
          localv = localv.a();
        }
      } while (i == 0);
      label88:
      return localObject;
    }
    
    class a_
    {
      z a;
      Set c;
      eb d;
      double e;
      
      a_(n paramn)
      {
        this.a = new z();
        this.c = new HashSet();
        this.a.add(paramn);
        this.c.add(paramn);
        this.d = paramn.a(ic.b_.this.b).c();
        ic.b_.this.c.add(this.d);
      }
      
      a_(a_ parama_1, a_ parama_2, eb parameb)
      {
        this.a = new z(parama_1.a);
        this.c = new HashSet(parama_1.c);
        a(parama_2.a);
        this.d = parameb;
        ic.b_.this.c.add(this.d);
      }
      
      public void a(n paramn)
      {
        if ((sb.e) || (this.c.add(paramn))) {
          this.a.add(paramn);
        }
      }
      
      public void a(z paramz)
      {
        int i = sb.d;
        Iterator localIterator = paramz.iterator();
        do
        {
          if (!localIterator.hasNext()) {
            break;
          }
          n localn = (n)localIterator.next();
          a(localn);
        } while (i == 0);
      }
      
      public void a(a_ parama_)
      {
        this.a.a(parama_.a);
        this.c.addAll(parama_.c);
      }
      
      public double a()
      {
        return this.e;
      }
      
      private void c()
      {
        boolean bool = sb.e;
        int j = sb.d;
        double d1 = this.a.size();
        double d2 = (ic.b_.this.a.size() / d1 - 1.0D) * 5.0D;
        double d3 = ((!bool) && (ic.this.a().c().m() == null)) || (ic.this.a().c().m().a(this.d, ic.b_.this.e)) ? 0.0D : 1.0D;
        double d4 = 0.0D;
        Iterator localIterator = this.a.iterator();
        label244:
        do
        {
          eb localeb;
          int i;
          do
          {
            do
            {
              f localf;
              do
              {
                if (!localIterator.hasNext()) {
                  break;
                }
                n localn = (n)localIterator.next();
                localf = localn.a(ic.b_.this.b);
                localeb = localf.c();
              } while (localeb.d() == 0.0D);
              i = localf.d();
              if (bool) {
                break label293;
              }
              if ((!bool) && (j != 0)) {
                return;
              }
              if (bool) {
                break label244;
              }
              if (i != -1) {
                break;
              }
              d4 += this.d.b(localeb.a()) / localeb.d();
            } while ((!bool) && (j == 0));
            if (bool) {
              break;
            }
          } while (i != 1);
          d4 += this.d.b(localeb.b()) / localeb.d();
          if (bool) {
            break label293;
          }
        } while (j == 0);
        d4 /= this.a.size();
        label293:
        this.e = (d2 + d3 + d4);
      }
      
      public boolean c(z paramz)
      {
        this.a.removeAll(paramz);
        if (!sb.e)
        {
          if (this.a.size() == 0) {
            return true;
          }
          this.c.removeAll(paramz);
          c();
        }
        return false;
      }
    }
  }
}



/* Location:           E:\idea\

 * Qualified Name:     a.f.l.a.ic

 * JD-Core Version:    0.7.0.1

 */